#ifndef TASK_H
#define TASK_H

#include <QUuid>
#include <QDate>
#include <QVector>
#include <QStringList>

#include "algorithm.h"

enum TaskStatus {TS_Run, TS_Stop, TS_Pause, TS_Finished, TS_Pending};

const QStringList TaskStatusStrings( QStringList() << QObject::tr("Solving") << QObject::tr("Stoped") <<
                                     QObject::tr("Paused") << QObject::tr("Finished") <<
                                     QObject::tr("Pending") );
extern QStringList OptimizationStrings;
extern QStringList AlgorithmStrings;
extern QList<Algorithm> algorithms;

class Task
{
public:
    Task();

private:
    QUuid *uuid;

    QDate *lastExecution;
    QTime *lastExecutionDuration;

    TaskStatus taskStatus;

    int algorithm;
    int optimization;

    QVector<QVector<int> > input;
    QVector<QVector<int> > output;
};

#endif // TASK_H
